1
ความรู้เบื้องต้นเกี่ยวกับประสิทธิภาพของคิวรี
DSAI2202Lesson 11: Correct Answer, Terrible Query
00:00

ในการจัดการฐานข้อมูล การได้ผลลัพธ์เชิงตรรกะที่ถูกต้องเป็นเพียงครึ่งหนึ่งของเป้าหมายเท่านั้น ความเข้าใจเกี่ยวกับ ประสิทธิภาพของคิวรี ช่วยให้มั่นใจว่าฐานข้อมูลคำนวณผลลัพธ์นั้นอย่างมีประสิทธิภาพโดยไม่เปลืองทรัพยากรของระบบ คิวรีหนึ่งๆ สามารถคืนข้อมูลที่ต้องการได้อย่างถูกต้องแม่นยำ ขณะที่ทำงานอย่างไม่มีประสิทธิภาพในเบื้องหลัง

วัตถุประสงค์การเรียนรู้และบริบท

บรรยายครั้งที่ 11 — คำตอบที่ถูกต้อง คิวรีที่แย่มาก: เน้นย้ำว่าการเขียน SQL ที่ทำงานได้เพียงอย่างเดียวยังไม่พอ นักพัฒนาฐานข้อมูลต้องเข้าใจว่าตัวเพิ่มประสิทธิภาพคิวรี (query optimizer) ดำเนินการทำงานเบื้องหลังอย่างไร

ความรู้เบื้องต้นเกี่ยวกับประสิทธิภาพของคิวรีไม่มีเส้นทางการเข้าถึงใดที่เร็วกว่าเสมอ ควรวัดผลจากปริมาณงานที่เป็นตัวแทนจริงความรู้เบื้องต้นเกี่ยวกับประสิทธิภาพของคิวรีแนวทางคิวรีสองแบบให้ผลลัพธ์ข้อมูลเหมือนกันแต่ใช้ต้นทุนทรัพยากรต่างกันความรู้เบื้องต้นเกี่ยวกับประสิทธิภาพของคิวรีAแผน A: การสแกนการสแกนทั้งตาราง (หลายล้านแถว)อ่านหน้าข้อมูลจำนวนมากBแผน B: การค้นหาผ่านดัชนีการค้นหาผ่านดัชนี (เข้าถึงโดยตรง)การเข้าถึงแบบเลือกเฉพาะอาจลดปริมาณงานได้ผลลัพธ์ตารางผลลัพธ์สุดท้ายข้อมูลผลลัพธ์ที่เหมือนกันไม่มีเส้นทางการเข้าถึงใดที่เร็วกว่าเสมอ ควรวัดผลจากปริมาณงานที่เป็นตัวแทนจริง

แนวคิดหลัก

  • ความถูกต้องเชิงตรรกะ vs. ประสิทธิภาพการทำงาน: การคืนข้อมูลได้สำเร็จไม่ได้รับประกันการใช้ทรัพยากรอย่างมีประสิทธิภาพ คิวรีสองตัวที่ทำงานเหมือนกันตามหน้าที่สามารถให้ตารางผลลัพธ์เดียวกันทุกประการ แต่ใช้ CPU หน่วยความจำ และการอ่าน/เขียนดิสก์ในปริมาณที่ต่างกันอย่างมาก
  • ผลกระทบต่อความสามารถในการขยายระบบ: คิวรีที่ไม่ได้รับการปรับให้เหมาะสมทำหน้าที่เป็นคอขวดด้านประสิทธิภาพ ทำให้ผู้ใช้ที่ใช้งานพร้อมกันช้าลง เพิ่มภาระให้กับเซิร์ฟเวอร์ และไม่สามารถขยายระบบได้อย่างราบรื่นเมื่อขนาดฐานข้อมูลเพิ่มขึ้น
  • ตัวอย่างสถานการณ์: การค้นหาลูกค้ารายหนึ่งในตารางที่มีแถวหลายล้านแถว คิวรีที่ไม่มีประสิทธิภาพบังคับให้สแกนทั้งตารางซึ่งใช้เวลาหลายวินาที ในขณะที่คิวรีที่ปรับให้เหมาะสมแล้วสามารถดึงข้อมูลได้ภายในมิลลิวินาที
บันทึกเสริม
บรรยายครั้งที่ 11 — คำตอบที่ถูกต้อง คิวรีที่แย่มาก: นักพัฒนาฐานข้อมูลต้องวิเคราะห์แผนการทำงาน (execution plans) เพื่อให้แน่ใจว่าคิวรีขยายระบบได้อย่างมีประสิทธิภาพภายใต้ภาระงานจริงที่หนักหน่วง
Introduction to Query Performance